home *** CD-ROM | disk | FTP | other *** search
/ The Programmer Disk / The Programmer Disk (Microforum).iso / xpro / qb2 / pro15 / p-demo2.bas < prev    next >
Encoding:
BASIC Source File  |  1990-08-20  |  5.3 KB  |  250 lines

  1.  '*****************************************************************************
  2.  '* P-DEMO2 - Palette demo.                                                   *
  3.  '*                                                                           *
  4.  '* Written for GRAFIX by:  Joseph A. Albrecht                                *
  5.  '*                                                                           *
  6.  '* Press F10 to toggle between 320 and 640 graphic modes                     *
  7.  '* Press ESC to exit program                                                 *
  8.  '*****************************************************************************
  9.  '$INCLUDE: 'GRAFQBS.INC' 
  10.  'The above line is for QuickBASIC.
  11.  
  12.  ''$INCLUDE "GRAFTBS.INC"
  13.  'The above line is for TURBO BASIC. Remove the  ''  to compile the program.
  14.  
  15.  ''$INCLUDE "GRAFPBS.INC"
  16.  'The above line is for PowerBASIC. Remove the  ''  to compile the program.
  17.  
  18.  DIM H0(15), H1(15), H2(15), H3(15), H4(15), H5(15), H6(15), H7(15), H8(15), H9(15)
  19.  DIM H10(15), H11(15), H12(15), Image%(16006)
  20.  
  21.  FOR N = 0 TO 7
  22.    READ H0(N)
  23.  NEXT N
  24.  FOR N = 0 TO 7
  25.    READ H1(N)
  26.  NEXT N
  27.  FOR N = 0 TO 7
  28.    READ H2(N)
  29.  NEXT N
  30.  FOR N = 0 TO 7
  31.    READ H3(N)
  32.  NEXT N
  33.  FOR N = 0 TO 7
  34.    READ H4(N)
  35.  NEXT N
  36.  FOR N = 0 TO 7
  37.    READ H5(N)
  38.  NEXT N
  39.  FOR N = 0 TO 7
  40.    READ H6(N)
  41.  NEXT N
  42.  FOR N = 0 TO 7
  43.    READ H7(N)
  44.  NEXT N
  45.  FOR N = 0 TO 15
  46.    READ H8(N)
  47.  NEXT N
  48.  FOR N = 0 TO 15
  49.    READ H9(N)
  50.  NEXT N
  51.  FOR N = 0 TO 15
  52.    READ H10(N)
  53.  NEXT N
  54.  FOR N = 0 TO 15
  55.    READ H11(N)
  56.  NEXT N
  57.  FOR N = 0 TO 15
  58.    READ H12(N)
  59.  NEXT N
  60.  
  61.  Graphics = 320
  62.  C1(1) = Green
  63.  C1(2) = Cyan
  64.  C2(1) = Blue
  65.  C2(2) = Cyan
  66.  C2(3) = Yellow
  67.  DEF SEG = VARSEG(Image%(0))
  68.  BLOAD "P-DEMO2.BIN", VARPTR(Image%(0))
  69.  DEF SEG
  70.  CALL GetTandy11(Tandy11%)
  71.  CALL AudioOff
  72.  CALL MediumGraphics
  73.  
  74. Again:
  75.  RANDOMIZE TIMER
  76.  CALL PaletteUsing(H0(0))
  77.  CALL ExtPut(0, 0, Image%(0), PutXor%)
  78.  IF Graphics = 640 THEN CALL ExtPut(320, 0, Image%(0), PutXor%)
  79.  
  80. MainLoop:
  81.  S1 = 120
  82.  FOR N = 1 TO 7
  83.    GOSUB LightCoils1
  84.    GOSUB MakeSound
  85.    GOSUB LightCoils2
  86.    GOSUB MakeSound
  87.  NEXT N
  88.  FOR N = 1 TO 7
  89.    GOSUB LightPosts
  90.    GOSUB LightCoils1
  91.    GOSUB LightCoils2
  92.    GOSUB MakeSound
  93.  NEXT N
  94.  FOR N = 1 TO 4
  95.    GOSUB LightGlobes
  96.  NEXT N
  97.  FOR N = 1 TO 5
  98.    GOSUB LightArcs
  99.    GOSUB MakeSound
  100.  NEXT N
  101.  RANDOMIZE TIMER
  102.  TIMES = 0
  103.  NO.TIMES = INT(RND * 7 + 1)
  104.  WHILE TIMES < NO.TIMES
  105.    L = 6
  106.    GOSUB LightEmAll
  107.    TIMES = TIMES + 1
  108.  WEND
  109.  GOTO MainLoop
  110.  
  111. MakeSound:
  112.  CALL ExtSound(S1, 10, 7, 0)
  113.  CALL ExtSound(S1 + 5, 10, 7, 1)
  114.  CALL ExtSound(S1 + 10, 10, 7, 2)
  115.  S1 = S1 + 5
  116.  GOSUB CheckKey
  117.  RETURN
  118.  
  119. LightCoils1:
  120.  CALL PaletteUsing(H2(0))
  121.  CALL Pause(3)
  122.  GOSUB CheckKey
  123.  RETURN
  124.  
  125. LightCoils2:
  126.  CALL PaletteUsing(H3(0))
  127.  CALL Pause(3)
  128.  GOSUB CheckKey
  129.  RETURN
  130.  
  131. LightPosts:
  132.  CALL SetPalette(Green, Brown)
  133.  CALL SetPalette(Cyan, Yellow)
  134.  J = 1
  135.  FOR T = 1 TO 2
  136.    FOR Y = 193 TO 58 STEP -14
  137.      FOR X = 42 TO 278 STEP 236
  138.        CALL ExtPaint(X, Y, C1(J), Blue)
  139.        IF Graphics = 640 THEN CALL ExtPaint(X + 320, Y, C1(J), Blue)
  140.      NEXT X
  141.    NEXT Y
  142.    GOSUB MakeSound
  143.    CALL SetPlotColor(C1(J))
  144.    CALL ExtLine(68, 42, 72, 42)
  145.    CALL ExtLine(250, 42, 253, 42)
  146.    IF Graphics = 640 THEN
  147.      CALL ExtLine(388, 42, 392, 42)
  148.      CALL ExtLine(570, 42, 573, 42)
  149.    END IF
  150.    J = J MOD 2 + 1
  151.  NEXT T
  152.  GOSUB CheckKey
  153.  RETURN
  154.  
  155. LightGlobes:
  156.  CALL PaletteUsing(H4(0))
  157.  CALL Pause(3)
  158.  CALL PaletteUsing(H5(0))
  159.  CALL Pause(3)
  160.  GOSUB MakeSound
  161.  CALL PaletteUsing(H6(0))
  162.  CALL Pause(3)
  163.  CALL PaletteUsing(H7(0))
  164.  CALL Pause(3)
  165.  GOSUB MakeSound
  166.  GOSUB CheckKey
  167.  RETURN
  168.  
  169. LightArcs:
  170.  GOSUB MakeNoise
  171.  CALL PaletteUsing(H4(0))
  172.  GOSUB GetZ
  173.  CALL SetPalette(DarkGray, C2(Z))
  174.  CALL PaletteUsing(H5(0))
  175.  GOSUB GetZ
  176.  CALL SetPalette(LightBlue, C2(Z))
  177.  CALL PaletteUsing(H6(0))
  178.  GOSUB GetZ
  179.  CALL SetPalette(LightGreen, C2(Z))
  180.  CALL PaletteUsing(H7(0))
  181.  GOSUB GetZ
  182.  CALL SetPalette(LightBlue, C2(Z))
  183.  GOSUB CheckKey
  184.  RETURN
  185.  
  186. GetZ:
  187.  Z = INT(RND * 3) + 1
  188.  CALL Pause(2)
  189.  GOSUB CheckKey
  190.  RETURN
  191.  
  192. MakeNoise:
  193.  CALL Noise(5, 8, 12)
  194.  GOSUB CheckKey
  195.  RETURN
  196.  
  197. LightEmAll:
  198.  FOR T = 1 TO 5
  199.    CALL Noise(5, L, 18)
  200.    CALL PaletteUsing(H8(0))
  201.    CALL Pause(3)
  202.    CALL PaletteUsing(H9(0))
  203.    CALL Pause(3)
  204.    CALL PaletteUsing(H10(0))
  205.    CALL Pause(3)
  206.    CALL PaletteUsing(H11(0))
  207.    CALL Pause(3)
  208.    CALL PaletteUsing(H12(0))
  209.    CALL Pause(3)
  210.    L = L + 1
  211.    GOSUB CheckKey
  212.  NEXT T
  213.  RETURN
  214.  
  215. CheckKey:
  216.  K$ = INKEY$
  217.  K$ = RIGHT$(K$, 1)
  218.  IF K$ = CHR$(27) THEN
  219.    CALL ExitGraphics
  220.    CALL AudioOff
  221.    END
  222.  END IF
  223.  IF K$ = CHR$(68) AND Tandy11% = Tandy11.True% THEN
  224.    IF Graphics = 320 THEN
  225.      Graphics = 640
  226.      CALL HighGraphics
  227.      RETURN Again
  228.    ELSE
  229.      Graphics = 320
  230.      CALL MediumGraphics
  231.      RETURN Again
  232.    END IF
  233.  END IF
  234.  RETURN
  235.  
  236.  DATA 00,00,00,00,00,00,00,00
  237.  DATA 00,01,08,08,08,07,03,08
  238.  DATA 00,01,08,08,06,10,03,08
  239.  DATA 00,01,08,08,10,03,03,08
  240.  DATA 00,01,06,14,06,10,03,04
  241.  DATA 00,01,14,06,10,03,04,14
  242.  DATA 00,01,06,14,06,10,14,14
  243.  DATA 00,01,14,06,10,03,04,14
  244.  DATA 00,01,06,14,06,10,03,04,03,00,00,14,00,00,00,00
  245.  DATA 00,01,14,06,10,03,04,14,00,09,00,00,06,00,00,00
  246.  DATA 00,01,06,14,06,10,14,14,00,00,01,00,00,04,00,00
  247.  DATA 00,01,14,06,10,03,04,14,00,10,00,00,00,00,05,00
  248.  DATA 00,01,06,14,06,10,03,04,03,00,00,00,00,00,00,09
  249.  
  250.